package com.atugigu.controller;

import com.atugigu.pojo.User;
import org.springframework.stereotype.Controller;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

/**
 * @author ：HB
 * @date ：Created in 2020/10/29 10:04
 * @description： 测试回写数据：
 * 1.直接返回字符串
 * 2.返回对象或集合
 */
@Controller
@RequestMapping("/user")
public class UserController2 {
    /**
     * 无返回值 回写数据
     *
     * @param response
     * @throws IOException 测试：http://localhost:8080/springmvc_day02_01_response/user/quick6
     */
    @RequestMapping(value = "/quick6")
    public void save6(HttpServletResponse response) throws IOException {
        // 设置中文乱码
        response.setCharacterEncoding("UTF-8");
        response.setContentType("text/html;charset=UTF-8");
        //回写数据到页面
        response.getWriter().print("你好");
    }

    /**
     * 直接返回字符串：将需要的字符串直接返回，但此时需要通过@ResponseBody注解告知Springmvc框架
     * 方法返回的是字符串不是跳转，是直接在http响应体中返回
     *
     * @return
     */
    @RequestMapping(value = "/quick7")
    @ResponseBody
    public String save7() {
        return "hello world";

    }

    /**
     * 返回json字符串:
     * 虽然这里返回的对象，但是我期望SpringMVC自动将User转换成json格式的字符串
     * 测试：http://localhost:8080/springmvc_day02_01_response/user/quick8
     * 步骤： 1. 在方法中加入  @ResponseBody
     *       2. 在配置中加入配置<mvc:annotation-driven />
     */
    @RequestMapping(value = "/quick8")
    @ResponseBody
    public User save8() {
        User user = new User();
        user.setUsername("美美");
        user.setPassword("123");
        user.setAge(30);
        return user;
    }

}
